package com.beyond.trace.domain;

import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import com.ruoyi.common.core.domain.BaseEntity;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Size;

/**
 * 地块信息对象 t_trace_land
 *
 * @author yao
 * @date 2022-03-02
 */
@Data
@TableName("t_trace_land")
public class TraceLand extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    @TableId(value = "land_id", type = IdType.ASSIGN_ID)
    @JsonSerialize(using= ToStringSerializer.class)
    private Long landId;

    /** 地块编号 */
    @Excel(name = "地块编号")
    @ApiModelProperty(value = "地块编号")
    private String landNo;

    /** 地块名称 */
    @Excel(name = "地块名称")
    @ApiModelProperty(value = "地块名称")
    @NotEmpty(message = "地块信息不能为空")
    private String landName;

    /** 地块面积 */
    @Excel(name = "地块面积")
    @ApiModelProperty(value = "地块面积")
    @Size(min = 0,max = 15,message = "地块面积不能超过15个字符")
    private String landArea;

    /** 所属基地 */
    @Excel(name = "所属基地")
    @ApiModelProperty(value = "所属基地")
    private String landBase;

    /** 经度 */
    @Excel(name = "经度")
    @ApiModelProperty(value = "经度")
    private String landLongitude;

    /** 纬度 */
    @Excel(name = "纬度")
    @ApiModelProperty(value = "纬度")
    private String landLatitude;

    /** 省市区 */
    @Excel(name = "省市区")
    @ApiModelProperty(value = "省市区")
    private String landRegion;

    /** 地块地址 */
    @Excel(name = "地块地址")
    @ApiModelProperty(value = "地块地址")
    private String landAddress;

    /** 主要种植植物 */
    @Excel(name = "主要种植植物")
    @ApiModelProperty(value = "主要种植植物")
    private String landPlant;

    /** 负责人 */
    @Excel(name = "负责人")
    @ApiModelProperty(value = "负责人")
    private String landPerson;

    /** 负责人联系方式 */
    @Excel(name = "负责人联系方式")
    @ApiModelProperty(value = "负责人联系方式")
    private String landPersonPhone;

    @Excel(name = "部门id")
    @ApiModelProperty(value = "部门id")
    @JsonIgnore
    private String departId;

    public void setLandId(Long landId)
    {
        this.landId = landId;
    }

    public Long getLandId()
    {
        return landId;
    }
    public void setLandNo(String landNo)
    {
        this.landNo = landNo;
    }

    public String getLandNo()
    {
        return landNo;
    }
    public void setLandName(String landName)
    {
        this.landName = landName;
    }

    public String getLandName()
    {
        return landName;
    }
    public void setLandArea(String landArea)
    {
        this.landArea = landArea;
    }

    public String getLandArea()
    {
        return landArea;
    }
    public void setLandBase(String landBase)
    {
        this.landBase = landBase;
    }

    public String getLandBase()
    {
        return landBase;
    }
    public void setLandPlant(String landPlant)
    {
        this.landPlant = landPlant;
    }

    public String getLandPlant()
    {
        return landPlant;
    }
    public void setLandPerson(String landPerson)
    {
        this.landPerson = landPerson;
    }

    public String getLandPerson()
    {
        return landPerson;
    }
    public void setLandPersonPhone(String landPersonPhone)
    {
        this.landPersonPhone = landPersonPhone;
    }

    public String getLandPersonPhone()
    {
        return landPersonPhone;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("landId", getLandId())
                .append("landNo", getLandNo())
                .append("landName", getLandName())
                .append("landArea", getLandArea())
                .append("landBase", getLandBase())
                .append("landPlant", getLandPlant())
                .append("landPerson", getLandPerson())
                .append("landPersonPhone", getLandPersonPhone())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .toString();
    }
}